]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
extensionPrefs: Inherit from Gtk.Application
authorMarco Trevisan (Treviño) <mail@3v1n0.net>
Tue, 28 May 2019 21:22:37 +0000 (23:22 +0200)
committerFlorian Müllner <florian.muellner@gmail.com>
Wed, 17 Jul 2019 12:59:08 +0000 (12:59 +0000)
Extension preferences Application class is just a container for a GtkApplication
so instead of using composition we can inherit from the base GObject class.

Also replace signal connections with vfunc's.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/631

js/extensionPrefs/main.js

index f0e604a278cf2b3adcc54b57b543f676fd6c2f85..d82dde426a6eac6dad654d211aad95bdae1b378c 100644 (file)
@@ -17,18 +17,16 @@ function stripPrefix(string, prefix) {
     return string;
 }
 
-var Application = class {
-    constructor() {
+var Application = GObject.registerClass({
+    GTypeName: 'ExtensionPrefs_Application'
+}, class Application extends Gtk.Application {
+    _init() {
         GLib.set_prgname('gnome-shell-extension-prefs');
-        this.application = new Gtk.Application({
+        super._init({
             application_id: 'org.gnome.shell.ExtensionPrefs',
             flags: Gio.ApplicationFlags.HANDLES_COMMAND_LINE
         });
 
-        this.application.connect('activate', this._onActivate.bind(this));
-        this.application.connect('command-line', this._onCommandLine.bind(this));
-        this.application.connect('startup', this._onStartup.bind(this));
-
         this._extensionPrefsModules = {};
 
         this._startupUuid = null;
@@ -84,7 +82,7 @@ var Application = class {
                                                 visible: true }));
 
         if (this._skipMainWindow) {
-            this.application.add_window(dialog);
+            this.add_window(dialog);
             if (this._window)
                 this._window.destroy();
             this._window = dialog;
@@ -213,8 +211,8 @@ var Application = class {
         return scroll;
     }
 
-    _buildUI(app) {
-        this._window = new Gtk.ApplicationWindow({ application: app,
+    _buildUI() {
+        this._window = new Gtk.ApplicationWindow({ application: this,
                                                    window_position: Gtk.WindowPosition.CENTER });
 
         this._window.set_default_size(800, 500);
@@ -302,17 +300,19 @@ var Application = class {
         this._loaded = true;
     }
 
-    _onActivate() {
+    vfunc_activate() {
         this._window.present();
     }
 
-    _onStartup(app) {
-        this._buildUI(app);
+    vfunc_startup() {
+        super.vfunc_startup();
+
+        this._buildUI();
         this._scanExtensions();
     }
 
-    _onCommandLine(app, commandLine) {
-        app.activate();
+    vfunc_command_line(commandLine) {
+        this.activate();
         let args = commandLine.get_arguments();
 
         if (args.length) {
@@ -332,7 +332,7 @@ var Application = class {
         }
         return 0;
     }
-};
+});
 
 var Expander = GObject.registerClass({
     Properties: {
@@ -638,6 +638,5 @@ function main(argv) {
     Gettext.bindtextdomain(Config.GETTEXT_PACKAGE, Config.LOCALEDIR);
     Gettext.textdomain(Config.GETTEXT_PACKAGE);
 
-    let app = new Application();
-    app.application.run(argv);
+    new Application().run(argv);
 }